6VERSION = 3.00 _reports.hF4$_output _reports.hPixelsClass2 _container_output(Top = 0 Left = 0 Name = "cusWindows" _output cusWindowscustom_ui.vcx_windowhandler container _base.vcx _reports.hM(pArial, 0, 9, 5, 15, 12, 32, 3, 0 Courier New, 0, 8, 7, 14, 11, 7, 3, 0 MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0  _showtext _reports.hPixelsClass7_form _showtext _showtext chkReadOnlycheckbox _base.vcx _checkbox _showtextcmdFonts commandbutton container _reports.vcxSWidth = 338 Height = 49 Name = "_outputchoices" cusWindows.Name = "cusWindows" _textbox _base.vcxtextbox txtFileName_outputchoices _combobox _base.vcxcomboboxcboDestinations_outputchoices _combobox _base.vcxTop = 112 Left = 336 FontName = "MS Sans Serif" FontSize = 8 AutoSize = .T. BackStyle = 0 Caption = "Read only" ControlSource = "THISFORM.edtText.Readonly" Name = "chkReadOnly"  '%o~U C CUTHISFORM GETFIXEDFONTSETFONTSClick,12?)JPROCEDURE Click THISFORM.GetFixedFont() THISFORM.SetFonts() ENDPROC Top = 134 Left = 337 Height = 25 Width = 74 FontName = "MS Sans Serif" FontSize = 8 Caption = "Fonts..." Name = "cmdFonts"  _base.vcx_commandbutton  %ShbU CUTHISFORMRELEASEClick,12%)0PROCEDURE Click THISFORM.Release() ENDPROC Top = 5 Left = 337 Height = 25 Width = 74 FontName = "MS Sans Serif" FontSize = 8 Cancel = .T. Caption = "\ Root Entry^=?@OleObjectData\AccessObjSiteData&\ChangedProps<+/I!C4OO< \$828C4C820-401A-101B-A3C9-08002B2F49FBAZTop = 72 Left = 336 Height = 100 Width = 100 ZOrderSet = 1 Name = "OleCommonDialog"  _showtextOleCommonDialog olecontrol olecontrolFontName = "Courier New" FontSize = 8 Height = 229 Left = 0 ReadOnly = .T. ScrollBars = 2 Top = 3 Width = 324 ColorSource = 3 Name = "edtText"  _showtextedtTexteditbox _base.vcx_editboxTop = 0 Left = 0 Height = 237 Width = 419 ShowWindow = 1 DoCreate = .T. Caption = "Text Editor" cfixedfontname = ("Courier New") ifixedfontsize = 9 csourcefile = ("") ctargetfile = ("") Name = "_showtext" form _base.vcx _reports.hM(kArial, 0, 9, 5, 15, 12, 32, 3, 0 MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 Arial, 0, 8, 5, 14, 11, 30, 3, 0  _outputdialog _reports.h setkeys PixelsClass18_form _outputdialogAutoSize = .T. FontName = "MS Sans Serif" FontSize = 8 BackStyle = 0 Caption = "Output t\". *setvfpprinter *cvfpprintername_access *coption_assign *outputtoscreen Outputs to screen. ^adestinations[1,2] Array of destinations. *cdestination_assign *setoptions Drives options for output destinations. ^aoptions[1,2] Array of destination output options. *setdestinations Controls available output destinations. *calias_assign *creport_assign *output This is main method that is called to generate output based on settings. *setoutputprinter *printlist *printreport *copytable Exports a table. *lpreventsourcechanges_assign *cdisplayfontname_assign *genhtml Generates HTML output. *cscope_assign *ctextfile_assign cfixedfontname Font name for display editbox. ifixedfontsize Font size for display editbox. csourcefile Name of source file to view/edit. ctargetfile Name of file to which you would like to save the (possibly edited) contents of the editbox. lfixedfontbold Font bold for display editbox. lfixedfontitalic Font italic for display editbox. lsuppresscaptionchange Suppresses the dialog caption from changing as the source file changes. This is useful for displaying the contents of a temporary file. *ctargetfile_access *csourcefile_assign *setfonts Applies the current font property characteristics to the editbox displaying the file. *getfixedfont Uses common dialog to display font dialog, restricted to fixed font items.   8% ]R Uf%CSOT  CT BUTHIS CTARGETFILEOLECOMMONDIALOGFLAGSSHOWSAVEFILENAMEd%CC3TTC HW C0CC]  T0 C.txt0CC.txt]  T.txt2T%CT]TC% YTUTVNEWVALLCVALTHIS CSOURCEFILEEDTTEXTVALUELSUPPRESSCAPTIONCHANGECAPTION[TTTT U THISEDTTEXTFONTNAMECFIXEDFONTNAMEFONTSIZEIFIXEDFONTSIZE FONTITALICLFIXEDFONTITALICFONTBOLDLFIXEDFONTBOLDb TT[T@TTT C 6T C 6 C %C TT C T C T%C ?TWTULCNAMELISIZETHISCFIXEDFONTNAMEIFIXEDFONTSIZEOLECOMMONDIALOGFLAGSFONTNAMEFONTSIZE FONTITALICLFIXEDFONTITALICFONTBOLDLFIXEDFONTBOLDSHOWFONT%C #B-%C MS Sans Serif$ !C MS Sans Serif$ !C MS Sans Serif$ !C MS Sans Serif$  =TC MS Sans Seriff9.%CFontNameh Cf 5TArialTT Text ViewerT T  C C U TCSOURCEFILE LOCONTROLLCSTANDARDFONTTHISCONTROLSFONTNAME CSOURCEFILECAPTION MINHEIGHTHEIGHTMINWIDTHWIDTHSETFONTSRESIZETC%*T<J(T T  U LNMARGINTHISEDTTEXTWIDTHCMDCLOSELEFTCMDSAVE CHKREADONLYCMDFONTSTOPHEIGHTctargetfile_access,csourcefile_assignsetfonts getfixedfontlInitvResize1!BB3qrRAA"11AA4aaaa2AAAAB3qrqAb q"RAAC112qB3 ^"}34'Vm:? ]T |)  PROCEDURE ctargetfile_access IF EMPTY(THIS.cTargetFile) WITH THIS.oleCommonDialog .Flags = cdlOFNPathMustExist + ; cdlOFNNoChangeDir + ; cdlOFNHideReadOnly + ; cdlOFNExplorer + ; cdlOFNOverwritePrompt+ ; cdlOFNNoReadOnlyReturn .ShowSave() THIS.cTargetFile = .FileName ENDWITH ENDIF RETURN THIS.cTargetFile ENDPROC PROCEDURE csourcefile_assign LPARAMETERS tvNewVal LOCAL lcVal IF VARTYPE(tvNewVal) # "C" THIS.cSourceFile = "" ELSE lcVal = ALLTR(tvNewVal) DO CASE CASE FILE(lcVal) OR (NOT EMPTY(SYS(2000,lcVal))) THIS.cSourceFile = lcVal CASE FILE(lcVal+".txt") OR (NOT EMPTY(SYS(2000,lcVal+".txt"))) THIS.cSourceFile = lcVal+".txt" OTHERWISE THIS.cSourceFile = "" ENDCASE ENDIF IF EMPTY(THIS.cSourceFile) THIS.edtText.Value = "" ELSE THIS.edtText.Value = FileToStr(THIS.cSourceFile) IF NOT THIS.lSuppressCaptionChange THIS.Caption = THIS.cSourceFile ENDIF ENDIF ENDPROC PROCEDURE setfonts THIS.edtText.FontName = THIS.cFixedFontName THIS.edtText.FontSize = THIS.iFixedFontSize THIS.edtText.FontItalic = THIS.lFixedFontItalic THIS.edtText.FontBold = THIS.lFixedFontBold ENDPROC PROCEDURE getfixedfont LOCAL lcName, liSize lcName = THIS.cFixedFontName liSize = THIS.iFixedFontSize WITH THIS.oleCommonDialog .Flags = cdlCFScreenFonts + ; cdlCFForceFontExist + ; cdlCFFixedPitchOnly .FontName = THIS.cFixedFontName .FontSize = THIS.iFixedFontSize .FontItalic = IIF(THIS.lFixedFontItalic,1,0) .FontBold = IIF(THIS.lFixedFontBold,1,0) .ShowFont() IF NOT EMPTY(.FontName) THIS.cFixedFontName = .FontName THIS.lFixedFontBold = NOT EMPTY(.FontBold) THIS.lFixedFontItalic = NOT EMPTY(.FontItalic) ELSE THIS.cFixedFontName = lcName ENDIF IF NOT EMPTY(.FontSize) THIS.iFixedFontSize = .FontSize ELSE THIS.iFixedFontSize = liSize ENDIF ENDWITH ENDPROC PROCEDURE Init LPARAMETERS tcSourceFile LOCAL loControl IF NOT DODEFAULT() RETURN .F. ENDIF IF SYSTEM_LARGEFONTS LOCAL lcStandardFont lcStandardFont = UPPER(DIALOG_SMALLFONT_NAME) FOR EACH loControl IN THIS.Controls IF PEMSTATUS(loControl,"FontName",5) AND ; UPPER(loControl.FontName) == lcStandardFont loControl.FontName = DIALOG_LARGEFONT_NAME ENDIF ENDFOR * Note: no recursion here. ENDIF THIS.cSourceFile = tcSourceFile THIS.Caption = SHOWTEXT_TEXT_EDITOR_LOC THIS.MinHeight = THIS.Height THIS.MinWidth = THIS.Width THIS.SetFonts() THIS.Resize() ENDPROC PROCEDURE Resize LOCAL lnMargin lnMargin = SYSMETRIC(VERTICAL_SCROLLBAR_WIDTH) WITH THIS.edtText .Width = THIS.Width - (THIS.cmdClose.Width + ; (lnMargin * 2) + ; .Left) STORE (.Width + .Left + lnMargin) TO ; THIS.cmdSave.Left, ; THIS.cmdClose.Left, ; THIS.chkReadonly.Left, ; THIS.cmdFonts.Left lnMargin = .Top .Height = THIS.Height - lnMargin * 2 ENDWITH ENDPROC  _outputdialog lblOutputType _base.vcx_labelAutoSize = .T. FontName = "MS Sans Serif" FontSize = 8 BackStyle = 0 BorderStyle = 0 Caption = "\T C 'T THISFORM.cusOutput.cAlias-T THISFORM.cusOutput.cReport C  CCaUTHISLPREVENTSOURCECHANGES CBOTABLESLATABLESLICOUNTLIINDEX LCROWSOURCELCALIAS ROWSOURCEREQUERY CONTROLSOURCE TXTREPORTFILETHISFORMREFRESH CHECKOKBUTTONSETKEYS checkokbutton, calias_accessL calias_assign{cdestination_accessPcdestination_assigncreport_accesscreport_assign lpreventsourcechanges_accesslpreventsourcechanges_assign!#respondtopermissionforsourcechangescfieldlist_accesscfieldlist_assigncdisplayfontname_access cdisplayfontname_assignB laddsourcenametodropdown_access laddsourcenametodropdown_assign chtmlclass_accessJ chtmlclass_assign} chtmlstyleid_access chtmlstyleid_assign cscope_access cscope_assign "respondtopermissionforscopechanges lpreventscopechanges_assign setkeysRoutput DeactivateShow*InitActivate1AA2BAA2bAA2BAA63qAA4343qAA33qr2A2qrbBD1A 4333Q33qQA34qQA53qQA413qrRAA1q1Q11A5q"7qQA5qQ QA222q2A231rqA2AAb q"RBAB611!qqaAAqAA1$D hN% x1""5%Gf;'r?0J2O:Y [G  }I8 L NVQSXZ_afh{*6s!?)!?Height = 274 Width = 385 ShowWindow = 1 DoCreate = .T. AutoCenter = .T. BorderStyle = 2 Caption = "Output" MaxButton = .F. MinButton = .F. cdestination = ("") calias = ("") creport = ("") cfieldlist = ("") cdisplayfontname = ("") chtmlclass = chtmlstyleid = ("") cscope = ("") Name = "_outputdialog" form _base.vcx _reports.h&M()MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 _outputchoices _reports.hPixelsClass5_output_outputchoices %WfU1R,:C Pick a destination text filename HUY EXPORT Hz  DELIMITEDTASC C>TDBF2T  PRINTFILETPRN HTMLFILEATHTM2YTTXTTCC%CC cTextFileC R U LCEXTTHISPARENT CDESTINATION CBOOPTIONSVALUE CTEXTFILERESETTODEFAULT TXTFILENAMEREFRESHClick,1rqAAqAB2R2x)PROCEDURE Click WAIT WINDOW NOWAIT LEFTC(OUTPUT_DESTINATION_TEXTFILE_LOC,254) LOCAL lcExt WITH THIS.Parent DO CASE CASE .cDestination == "EXPORT" *&* change for VFP 7 - *&* extension for Delimited *&* files explicitly set DO CASE CASE .cboOptions.Value == "DELIMITED" lcExt = "ASC" CASE LEN(.cboOptions.Value) > 3 lcExt = "DBF" OTHERWISE lcExt = .cboOptions.Value ENDCASE CASE .cDestination == "PRINTFILE" lcExt = "PRN" CASE .cDestination == "HTMLFILE" lcExt = "HTM" OTHERWISE lcExt = "TXT" ENDCASE .cTextFile = PUTFILE("",ALLTR(.cTextFile),lcExt) IF EMPTY(.cTextFile) .ResetToDefault("cTextFile") && otherwise it's a null string and the cursor won't stay ENDIF ENDWITH THIS.Parent.txtFileName.Refresh() WAIT CLEAR ENDPROC Top = 25 Left = 315 Height = 23 Width = 23 FontName = "MS Sans Serif" FontSize = 8 Caption = "..." TabIndex = 4 TabStop = .F. ZOrderSet = 3 Name = "cmdPutFile" _outputchoices cmdPutFile commandbutton _base.vcx_commandbuttonFontName = "MS Sans Serif" FontSize = 8 BoundColumn = 2 RowSourceType = 5 Height = 24 Left = 129 Style = 2 TabIndex = 2 Top = 0 Width = 212 ZOrderSet = 2 ItemTips = .T. BoundTo = .T. Name = "cboOptions" _outputchoices cboOptionscomboboxFontName = "MS Sans Serif" FontSize = 8 BoundColumn = 2 RowSourceType = 5 Value = ("") Height = 24 Left = 0 Style = 2 TabIndex = 1 Top = 0 Width = 130 ZOrderSet = 1 ItemTips = .T. BoundTo = .T. Name = "cboDestinations" FontName = "MS Sans Serif" FontSize = 8 Value = (SPACE(200)) Height = 23 Left = 0 TabIndex = 3 Top = 24 Width = 315 ZOrderSet = 0 Name = "txtFileName"  D + + % [ U ,TTHIS.Parent.aDestinations+TTHIS.Parent.cDestination'TTHIS.Parent.aOptions&TTHIS.Parent.cOption(TTHIS.Parent.cTextFile%C B-%C MS Sans Serif$ !C MS Sans Serif$ !C MS Sans Serif$ !C MS Sans Serif$  TC MS Sans Seriff.%CFontNameh C f T ArialU LOCONTROLTHISCBODESTINATIONS ROWSOURCE CONTROLSOURCE CBOOPTIONS TXTFILENAMELCSTANDARDFONTCONTROLSFONTNAME  CC%CUCEnabled-{Ta C TC  %T C TTC "%CC =\(C "%CC =\T C Ta!% T C U LIDESTINATIONLLFOUNDGOODROWTHISCBODESTINATIONSREQUERYCALIASCREPORTSETALLENABLED SETOPTIONS ADESTINATIONS CDESTINATIONVALUE C HH C## #PRINTREPORT# #PRINTLIST# #PRINTFILE#"CT WINDEFAULT:%C## #PRINTFILE# #PRINTREPORT#JC (JC (T WINDEFAULT SCREENCCTCC C  BROWSE GRAPHICAL6Ja( TEXTFILET-TC HTMLFILEh5JC (  CTC EXPORT.JC (  CTCO%C## #PRINTFILE# #TEXTFILE##EXPORT# #HTMLFILE#qJa(  %C mC J-(  %C TCUTHIS CDESTINATION CBOOPTIONSREQUERYVALUECREPORTENABLEDCALIASAOPTIONS TXTFILENAME CMDPUTFILE CTEXTFILESETFOCUSCOPTION CCUTHIS TXTFILENAMEREFRESHInit,setdestinations setoptions outputu 1qqaqAb q"RABB7AC#!AAABA5B5UB!AAA41"1LX)+ !PROCEDURE checkokbutton IF NOT THIS.Visible RETURN ENDIF THIS.cmdOK.Enabled = (NOT EMPTY(THIS.cAlias+THIS.cReport)) IF THIS.cmdOK.Enabled IF INLIST("#"+THIS.cusOutput.cDestination+"#","#PRINTFILE#","#TEXTFILE#","#EXPORT#", "#HTMLFILE#") AND ; EMPTY(THIS.cusOutput.txtFileName.Value) THIS.cmdOK.Enabled = .F. ENDIF ENDIF IF THIS.cmdOK.Enabled IF INLIST("#"+THIS.cusOutput.cDestination+"#","#PRINTREPORT#","#TEXTFILE#","#PRINTFILE#") AND ; EMPTY(THIS.cReport) THIS.cmdOK.Enabled = .F. ENDIF ENDIF IF THIS.cmdOK.Enabled IF INLIST("#"+THIS.cusOutput.cDestination+"#","#EXPORT#","#PRINTLIST#") AND ; EMPTY(THIS.cAlias) THIS.cmdOK.Enabled = .F. ENDIF ENDIF ENDPROC PROCEDURE calias_access RETURN THIS.cusOutput.cAlias ENDPROC PROCEDURE calias_assign LPARAMETERS m.vNewVal IF VARTYPE(m.vNewVal) = "C" STORE m.vNewVal TO THIS.cusOutput.cAlias, THIS.cAlias IF NOT THIS.lPreventSourceChanges THIS.cboTables.Refresh() ENDIF THIS.CheckOKButton() ENDIF ENDPROC PROCEDURE cdestination_access RETURN THIS.cusOutput.cDestination ENDPROC PROCEDURE cdestination_assign LPARAMETERS m.vNewVal STORE m.vNewVal TO THIS.cDestination, THIS.cusOutput.cDestination ENDPROC PROCEDURE creport_access RETURN THIS.cusOutput.cReport ENDPROC PROCEDURE creport_assign LPARAMETERS m.vNewVal IF VARTYPE(m.vNewVal) = "C" STORE m.vNewVal TO THIS.cReport, THIS.cusOutput.cReport IF NOT THIS.lPreventSourceChanges THIS.txtReportFile.Refresh() ENDIF THIS.CheckOKButton() ENDIF ENDPROC PROCEDURE lpreventsourcechanges_access RETURN THIS.cusOutput.lPreventSourceChanges ENDPROC PROCEDURE lpreventsourcechanges_assign LPARAMETERS tlNewVal LOCAL llChange IF VARTYPE(tlNewVal) = "L" AND tlNewVal # THIS.lPreventSourceChanges STORE tlNewVal TO THIS.lPreventSourceChanges, THIS.cusOutput.lPreventSourceChanges llChange = .T. ENDIF THIS.RespondToPermissionForSourceChanges(llChange) ENDPROC PROCEDURE respondtopermissionforsourcechanges LPARAMETERS tlExplicitChange LOCAL lnBottomMargin lnBottomMargin = INT(THIS.lblDestinations.Top * .66) IF (THIS.lPreventSourceChanges) IF EMPTY(THIS.cusOutput.cReport+THIS.cusOutput.cAlias) AND tlExplicitChange MESSAGEBOX(OUTPUT_REPORT_OR_DATASOURCE_REQUIRED_LOC, MB_ICONEXCLAMATION) ENDIF THIS.Height = lnBottomMargin + ; THIS.opgScope.Height + ; THIS.opgScope.Top ELSE THIS.Height = THIS.MaxHeight ENDIF STORE (NOT THIS.lPreventSourceChanges) TO ; THIS.lblSources.Visible, THIS.lblSources.Enabled, ; THIS.shpFrameSources.Visible, THIS.shpFrameSources.Enabled, ; THIS.lblReports.Visible, THIS.lblReports.Enabled, ; THIS.lblData.Visible, THIS.lblData.Enabled, ; THIS.txtReportFile.Visible, THIS.txtReportFile.Enabled, ; THIS.cmdGetReport.Visible, THIS.cmdGetReport.Enabled, ; THIS.cboTables.Visible, THIS.cboTables.Enabled ENDPROC PROCEDURE cfieldlist_access RETURN THIS.cusOutput.cFieldList ENDPROC PROCEDURE cfieldlist_assign LPARAMETERS m.vNewVal STORE m.vNewVal TO THIS.cFieldList, THIS.cusOutput.cFieldList ENDPROC PROCEDURE cdisplayfontname_access RETURN THIS.cusOutput.cDisplayFontName ENDPROC PROCEDURE cdisplayfontname_assign LPARAMETERS m.vNewVal THIS.cusOutput.cDisplayFontName = m.vNewVal ENDPROC PROCEDURE laddsourcenametodropdown_access RETURN THIS.cusOutput.lAddSourceNameToDropDown ENDPROC PROCEDURE laddsourcenametodropdown_assign LPARAMETERS tlNewVal IF VARTYPE(tlNewVal) = "L" STORE tlNewVal TO ; THIS.cusOutPut.lAddSourceNameToDropDown, ; THIS.lAddSourceNameToDropDown ENDIF ENDPROC PROCEDURE chtmlclass_access RETURN THIS.cusOutput.cHTMLClass ENDPROC PROCEDURE chtmlclass_assign LPARAMETERS tvNewVal IF VARTYPE(tvNewVal) = "C" STORE tvNewVal TO THIS.cHTMLClass, THIS.cusOutput.cHTMLClass ENDIF ENDPROC PROCEDURE chtmlstyleid_access RETURN THIS.cusOutput.cHTMLStyleID ENDPROC PROCEDURE chtmlstyleid_assign LPARAMETERS tvNewVal IF VARTYPE(tvNewVal) = "C" STORE tvNewVal TO THIS.cHTMLStyleID, THIS.cusOutput.cHTMLStyleID ENDIF ENDPROC PROCEDURE cscope_access RETURN UPPER(ALLTRIM(THIS.cusOutput.cScope)) ENDPROC PROCEDURE cscope_assign LPARAMETERS tvNewVal LOCAL lcNewVal IF VARTYPE(tvNewVal) = "C" lcNewVal = ALLTRIM(UPPER(tvNewVal)) STORE lcNewVal TO THIS.cScope, THIS.cusOutput.cScope ELSE lcNewVal = ALLTRIM(UPPER(THIS.cScope)) ENDIF DO CASE CASE lcNewVal == "ALL" OR EMPTY(lcNewVal) THIS.opgScope.Value = 1 CASE lcNewVal == "NEXT 1" THIS.opgScope.Value = 2 CASE lcNewVal == "REST" THIS.opgScope.Value = 3 OTHERWISE THIS.opgScope.Value = 0 ENDCASE ENDPROC PROCEDURE respondtopermissionforscopechanges LOCAL llScopeEnabled llScopeEnabled = (NOT THIS.lPreventScopeChanges) STORE llScopeEnabled TO ; THIS.opgScope.Enabled, THIS.lblScope.Enabled THIS.opgScope.Setall("Enabled", llScopeEnabled) ENDPROC PROCEDURE lpreventscopechanges_assign LPARAMETERS tlNewVal IF VARTYPE(tlNewVal) = "L" STORE tlNewVal TO THIS.lPreventScopeChanges ENDIF THIS.RespondToPermissionForScopeChanges() ENDPROC PROCEDURE setkeys LPARAMETERS tlOn IF tlOn PUSH KEY ON KEY LABEL Alt-Y IIF(TYPE("_SCREEN.ActiveForm.cusOutput.cboDestinations") = "O" AND ; _SCREEN.ActiveForm.cusOutput.cboDestinations.Enabled, ; _SCREEN.ActiveForm.cusOutput.cboDestinations.SetFocus(),; .T.) ON KEY LABEL Alt-P IIF(TYPE("_SCREEN.ActiveForm.cusOutput.cboOptions") = "O" AND ; _SCREEN.ActiveForm.cusOutput.cboOptions.Enabled, ; _SCREEN.ActiveForm.cusOutput.cboOptions.SetFocus(),; .T.) ON KEY LABEL Alt-F IIF(TYPE("_SCREEN.ActiveForm.cusOutput.txtFileName") = "O" AND ; _SCREEN.ActiveForm.cusOutput.txtFileName.Enabled, ; _SCREEN.ActiveForm.cusOutput.txtFileName.SetFocus(),; .T.) ELSE POP KEY ENDIF ENDPROC PROCEDURE output THIS.cusOutput.Output() ENDPROC PROCEDURE Deactivate THIS.SetKeys() ENDPROC PROCEDURE Show LPARAMETERS nStyle IF NOT EMPTY(THIS.cScope) THIS.lPreventScopeChanges = .T. ENDIF THIS.cScope = THIS.cScope && fix opgScope value THIS.RespondToPermissionForSourceChanges() ENDPROC PROCEDURE Init LPARAMETERS tcReport, tcAlias, tlPreventSourceChanges, tlPreventScopeChanges LOCAL loControl IF NOT DODEFAULT() RETURN .F. ENDIF THIS.MaxHeight = THIS.Height THIS.cReport = tcReport THIS.cAlias = tcAlias IF PCOUNT() >= 3 AND VARTYPE(tlPreventSourceChanges) = "L" THIS.lPreventSourceChanges = tlPreventSourceChanges ENDIF IF PCOUNT() = 4 AND VARTYPE(tlPreventScopeChanges) = "L" THIS.lPreventScopeChanges = tlPreventScopeChanges ENDIF IF SYSTEM_LARGEFONTS LOCAL lcStandardFont lcStandardFont = UPPER(DIALOG_SMALLFONT_NAME) FOR EACH loControl IN THIS.Controls DO CASE CASE PEMSTATUS(loControl,"FontName",5) AND ; UPPER(loControl.FontName) == lcStandardFont loControl.FontName = DIALOG_LARGEFONT_NAME CASE TYPE("loControl.Buttons(1)") = "O" loControl.SetAll("FontName",DIALOG_LARGEFONT_NAME) OTHERWISE * Note: no recursion here. ENDCASE ENDFOR ENDIF ENDPROC PROCEDURE Activate IF NOT THIS.lPreventSourceChanges WITH THIS.cboTables LOCAL ARRAY laTables[1,2] LOCAL liCount, liIndex, lcRowSource, lcAlias liCount = AUSED(laTables) lcRowSource = "" FOR liIndex = 1 TO liCount lcAlias = PROPER(laTables[liIndex,1]) lcRowSource = lcRowSource + lcAlias + "," ENDFOR IF RIGHTC(lcRowSource,1) = "," lcRowSource = LEFTC(lcRowSource, LEN(lcRowSource) - 1) ENDIF .RowSource = lcRowSource .Requery() .ControlSource = "THISFORM.cusOutput.cAlias" ENDWITH THIS.txtReportFile.ControlSource = "THISFORM.cusOutput.cReport" THISFORM.Refresh() ENDIF THIS.CheckOKButton() THIS.SetKeys(.T.) ENDPROC PROCEDURE Init LOCAL loControl THIS.cboDestinations.RowSource = "THIS.Parent.aDestinations" THIS.cboDestinations.ControlSource = "THIS.Parent.cDestination" THIS.cboOptions.RowSource = "THIS.Parent.aOptions" THIS.cboOptions.ControlSource = "THIS.Parent.cOption" THIS.txtFileName.ControlSource = "THIS.Parent.cTextFile" IF NOT DODEFAULT() RETURN .F. ENDIF IF SYSTEM_LARGEFONTS LOCAL lcStandardFont lcStandardFont = UPPER(DIALOG_SMALLFONT_NAME) FOR EACH loControl IN THIS.Controls IF PEMSTATUS(loControl,"FontName",5) AND ; UPPER(loControl.FontName) == lcStandardFont loControl.FontName = DIALOG_LARGEFONT_NAME ENDIF * Note: no recursion here. ENDFOR ENDIF ENDPROC PROCEDURE setdestinations LOCAL liDestination, llFoundGoodRow DODEFAULT() THIS.cboDestinations.Requery() IF EMPTY(THIS.cAlias+THIS.cReport) THIS.Setall("Enabled",.F.) ELSE THIS.cboDestinations.Enabled = .T. THIS.SetOptions() ENDIF liDestination = ASCAN(THIS.aDestinations,THIS.cDestination) IF liDestination = 0 && can happen if we've just changed THIS.cboDestinations.Value = THIS.aDestinations[1,2] liDestination = 1 ELSE liDestination = ASUBSCRIPT(THIS.aDestinations,liDestination,1) * THIS.cboDestinations.Value = THIS.aDestinations[liDestination,2] * not needed, since this control is bound to THIS.cDestination ENDIF * is this row disabled? look for a good one: IF LEFT(THIS.aDestinations[liDestination,1],1) = "\" FOR liDestination = 1 TO ALEN(THIS.aDestinations,1) IF LEFT(THIS.aDestinations[liDestination,1],1) # "\" THIS.cboDestinations.Value = THIS.aDestinations[liDestination,2] llFoundGoodRow = .T. EXIT ENDIF ENDFOR IF NOT llFoundGoodRow THIS.cboDestinations.Value = THIS.aDestinations[1,2] * best we can do ENDIF ENDIF ENDPROC PROCEDURE setoptions DODEFAULT() DO CASE CASE INLIST("#"+THIS.cDestination+"#","#PRINTREPORT#", "#PRINTLIST#", "#PRINTFILE#") THIS.cboOptions.Requery() THIS.cboOptions.Value = "WINDEFAULT" IF INLIST("#"+THIS.cDestination+"#","#PRINTFILE#","#PRINTREPORT#") STORE (NOT EMPTY(THIS.cReport)) TO ; THIS.cboOptions.Enabled ELSE STORE (NOT EMPTY(THIS.cAlias)) TO ; THIS.cboOptions.Enabled ENDIF THIS.cboOptions.Value = "WINDEFAULT" CASE THIS.cDestination == "SCREEN" THIS.cboOptions.Requery() THIS.cboOptions.Value = IIF(EMPTY(THIS.cReport) AND ; (NOT EMPTY(THIS.cAlias)), ; "BROWSE", ; "GRAPHICAL") STORE .T. TO THIS.cboOptions.Enabled CASE THIS.cDestination == "TEXTFILE" THIS.cboOptions.Enabled = .F. THIS.cboOptions.Value = THIS.aOptions[1,2] CASE THIS.cDestination == "HTMLFILE" STORE (NOT EMPTY(THIS.cAlias+THIS.cReport)) TO ; THIS.cboOptions.Enabled, ; THIS.txtFileName.Enabled, ; THIS.cmdPutFile.Enabled THIS.cboOptions.Requery() THIS.cboOptions.Value = THIS.aOptions[1,2] CASE THIS.cDestination == "EXPORT" STORE (NOT EMPTY(THIS.cAlias)) TO ; THIS.cboOptions.Enabled, ; THIS.txtFileName.Enabled, ; THIS.cmdPutFile.Enabled THIS.cboOptions.Requery() THIS.cboOptions.Value = THIS.aOptions[1,2] ENDCASE IF INLIST("#"+THIS.cDestination+"#","#PRINTFILE#","#TEXTFILE#","#EXPORT#","#HTMLFILE#") STORE .T. TO ; THIS.txtFileName.Enabled, ; THIS.cmdPutFile.Enabled IF EMPTY(THIS.cTextFile) THIS.txtFileName.SetFocus() ENDIF ELSE STORE .F. TO ; THIS.txtFileName.Enabled, ; THIS.cmdPutFile.Enabled ENDIF IF ASCAN(THIS.aOptions,THIS.cOption) = 0 THIS.cboOptions.Value = THIS.aOptions[1,2] ENDIF ENDPROC PROCEDURE output DODEFAULT() THIS.txtFileName.Refresh() ENDPROC ? ??%7[>i9U TC G*(JH%C## #PRINTFILE# #PRINTREPORT# #PRINTLIST#ATVFP default printer ()ULCNAMETHIS CDESTINATIONAOPTIONSCVFPPRINTERNAMEBCPRINTERvUY%CC6TCRTCCfUTCNEWVALTHISCOPTIONAOPTIONS BC1CCC0C.FRX0   -CCC C  CCC @%C+C###ASCII# #GRAPHICAL# B-D%C'C###BROWSE##LIST# CC %B-/      TCT CT C fSCREEN5%C###BROWSE# #GRAPHICAL#TWC]Ws,J@'Report Preview TCTT  T  ?TCTC _ShowText!%C loWindow.NamebC,TTaT C;B-T =%C###BROWSE##LIST# C %BROWSE T T%C k  T#(CaG-T,FieldCCZ=C TField1=CTField1= (C>T C \% ,S%CbU# TT$T,FieldCCZ=OT,T,}T T TCC ,T FIELDS  T/%C###LIST##ASCII#.T RC].TXT%BROWSE~2T! NOEDIT NODELETE NOAPPEND NOMENU 1%BROWSE GRAPHICAL <T+ WINDOW (lcName) IN WINDOW (loTopForm.Name)%C T  H0 ASCII T>P T??OREPORT FORM (THIS.cReport) ASCII TO FILE (lcFileName) NOCONSOLE &lcClauses T C   GRAPHICAL4 ,1REPORT FORM (THIS.cReport) PREVIEW &lcClauses  LIST6LIST OFF TO FILE (lcFileName) &lcClauses NOCONSOLE T C  BROWSEBROWSE &lcClauses 2%C  t, <,BU!THISCREPORTCALIAS CFIELDLISTCOPTIONLCWINDOWLCNAMELOWINDOW LCCLAUSES LCFILENAME LOTOPFORM LLINFOXFRAMELIPOSLCCHAR LIFIELDNOLCEXPR CUSWINDOWSGETCURRENTTOPFORMREFNAMECDISPLAYFONTNAMEFONTNAMEHEIGHTWIDTHLCFILE CLASSLIBRARYLSUPPRESSCAPTIONCHANGECFIXEDFONTNAMESETFONTSICONLAFIELDSCSCOPE CSOURCEFILESHOWf%CC6TCRTCCf CUTCNEWVALTHIS CDESTINATION ADESTINATIONSSETDESTINATIONS" H  H C## #PRINTREPORT# #PRINTLIST# #PRINTFILE#NTWindows default printer (CCPRINTv)ATVFP default printer ():TSelect and use new VFP default&T WINDEFAULT&T VFPDEFAULT)T SETVFPDEFAULT SCREENJ(.% C  C  %T GRAPHICAL T!TASCII T"TBROWSE T TLIST T%C %T GRAPHICAL T!TASCII T"TBROWSE T TLIST T%C % {9T\Graphical report preview4T\Text report preview4TGraphical report preview/TText report preview%C % 5T\Browse view of table:T\Simple list view of table0TBrowse view of table5TSimple list view of table TEXTFILE HTMLFILE!%C C  :T\Generate only, no display6T\View generated source;T\View output in web browser5TGenerate only, no display1TView generated source6TView output in web browser$TFILEONLY&T VIEWSOURCE#TWEBVIEW EXPORT  %T Excel 5.0TXL5%T Excel 2.0TXLS#TFox 2.X!TFOX2X!TXbase#TFOXPLUS(T Fixed LengthTSDF%T Delimited%T DELIMITED%T Lotus 2.xTWK13TData Interchange FormatTDIF)T  Symphony 1.10T WRK,T Separated ValuesT CSVU THIS CDESTINATIONAOPTIONSCVFPPRINTERNAME LIGRAPHICALLIASCIILIBROWSELILISTLPREVENTSOURCECHANGESCALIASCREPORT + %J(,%CGCG0CCG.FXP0    TG%  T (CC Լ)T ( ),T  (CC Լ, ) J(  H1.  C  C  %CG  $T HTMLFILE T'T  PRINTREPORT T%T  PRINTLIST T"T SCREEN T$T TEXTFILE T%T  PRINTFILE T"T EXPORT T C %CG5  $T HTMLFILE T%T  PRINTLIST T"T SCREEN T"T EXPORT T C i%CGP  $T HTMLFILE T'T  PRINTREPORT T"T SCREEN T$T TEXTFILE T%T  PRINTFILE T2 T%CG  T%C Q%M-T \ Print report*T \ Text file1T \Print-image file,T  Print report)T  Text file0T Print-image file%C l%h6T \Print list from table-T \ Export table5T Print list from table,T  Export table H  C C i(T \Preview%CG e*T \ HTML file C 'T Preview%CG )T  HTML file C S 'T Preview%CG O )T  HTML file2 'T Preview %CG  )T  HTML file U LIPRINTREPORT LIPRINTLISTLISCREEN LITEXTFILE LIHTMLFILE LIPRINTFILELIEXPORTLCSOURCEREPORT LCSOURCEALIAS LCSOURCEBOTHTHISLADDSOURCENAMETODROPDOWNCREPORTCALIASLPREVENTSOURCECHANGES ADESTINATIONS (%CCC C G T`TCCTT%  CUTCNEWVALLCNEWVALLLSAMETHISCALIASSETDESTINATIONS^ %CCC = TTC%C.T.FRX%C0 TC%C0  %CCC "R,:CReport not found! TTT% W CUTCNEWVALLCNEWVALLLSAME STARTMODETHISCREPORTSETDESTINATIONS^%C 3 TCW F HD9G C## #PRINTREPORT# #PRINTFILE# #TEXTFILE# C HTMLFILE C  PRINTLIST C SCREEN C EXPORT9 C%C W FU LISELECTTHISCALIAS CDESTINATION PRINTREPORTGENHTML PRINTLISTOUTPUTTOSCREEN COPYTABLE| H u  WINDEFAULT2G*(  VFPDEFAULT`G*(J2u CUTHISCOPTIONCVFPPRINTERNAME SETVFPPRINTER C%C [TCC ,T FIELDS p T%C T *LIST OFF &lcClauses TO PRINT NOCONSOLE U LCCLAUSESTHISSETOUTPUTPRINTER CFIELDLISTCSCOPEC  C0 )%CTEXTFILEHTMLFILE a C%C T T% PRINTREPORTTC H; CTRC] CR\3TRC]2;%C. Hc  PRINTFILET.PRN HTMLFILET.HTM2T.TXTTC H  TEXTFILEN'T TO FILE '' ASCII   PRINTFILET TO FILE   HTMLFILE&T TO FILE '' HTML 2T TO PRINT T%.LBXCfZALABEL FORM (THIS.cReport) &lcClauses &lcDestination NOCONSOLE BREPORT FORM (THIS.cReport) &lcClauses &lcDestination NOCONSOLE U THISCREPORT LCCLAUSES LCDESTINATIONLCFILE CDESTINATIONSETOUTPUTPRINTERCSCOPE CTEXTFILE  %-JTCC ,T FIELDS _ T%C T T TYPE TC H, CTRC] CR\$TRC]2,%C. HT  DELIMITEDT.ASC C>T.DBF2T.TCT COPY TO (lcFile) &lcClauses U LCCLAUSESLCFILETHIS CFIELDLISTCSCOPECOPTION CTEXTFILE+ T CUVNEWVALTHISLPREVENTSOURCECHANGESSETDESTINATIONS%CCC )BTC%CC( %CfCfT!UTCNEWVALLATEMPLCVALLCFONTTHISCDISPLAYFONTNAMEC  CC C0a6 CC Ca6 *%CGCG0 CG.FXP0    TGB&%C C C  T &%C C C  $T &%C C C  ^T vTALL H VIEWSOURCE T WEBVIEW T2 TTC Hn C6TRC] CR\fTRC]2n%C.T.HTMTCT%C HY CT  C 5T C 2YT ,%G (GUTHISCREPORTCALIASLCFILELVCLASSLISHOWLVDUMMYLCSCOPELVSTYLELCSOURCE CHTMLCLASS CHTMLSTYLEIDCSCOPECOPTION CTEXTFILE CFIELDLIST3%CC,TUTVNEWVALTHISCSCOPEv%CCo TC\%%CC= wTC\ T[TC:7%#C>C\\  TC\[ TTC\%CC= WTC\TUTVNEWVALLIPOSLCVALTHIS CTEXTFILEN%C B- C%CGTCUTHISSETDESTINATIONSCALIAS setvfpprinter,cvfpprintername_accesscoption_assign4outputtoscreencdestination_assign1 setoptions setdestinations~ calias_assign #creport_assign $output%setoutputprinterw' printlist&( printreport2) copytableE-lpreventsourcechanges_assign/cdisplayfontname_assign 0genhtml0 cscope_assignJ5ctextfile_assign5Init<71qA3Q2qQAA4#qADqABRR|1r!1qAB2b2AB!AA!!AAAABBC"AB2A`bRDAB3qQAA3bba2aQ!a!Q!AA"AAAA"QAQAbaQaABa1bTQ11QQQ1B4RAQAaaAAqQ!AQ!BaaAAQ!!BaaAAq!AQAB"AA"aAQAA!qA!qAqAA4qARA5qqQAq!AAAARA3q2AqAA3qA3q2B2A8A2A"QqBqQQQAABrbrB!A4B2A"QqBrQaQAB3!3qAARRQAAAB3qAAbAbAbAA#QqBrQA"!aAQAP1qQA3qQ1aaA1sA1aaAAB3qA!A4Er~ ?6d:&@d&'f@'6q6 GV0GhHocHK}4K *!* CASE THIS.cOption == "LIST" LIST OFF TO FILE (lcFileName) &lcClauses NOCONSOLE loWindow.cSourceFile = lcFileName loWindow.Show(1) ERASE (lcFileName) NORECYCLE CASE THIS.cOption == "BROWSE" BROWSE &lcClauses OTHERWISE * ? ENDCASE *!* IF THIS.cOption # "GRAPHICAL" *!* * report graphical preview takes special *!* * sequence of window handling, in the CASE above IF NOT EMPTY(lcWindow) ACTIVATE WINDOW (lcWindow) SAME ENDIF *!* ENDIF RELEASE WINDOW (lcName) RETURN ENDPROC PROCEDURE cdestination_assign LPARAMETERS tcNewVal IF VARTYPE(tcNewVal) # "C" THIS.cDestination = THIS.aDestinations[1,2] ELSE THIS.cDestination = UPPER(ALLTRIM(tcNewVal)) ENDIF THIS.SetDestinations() ENDPROC PROCEDURE setoptions DO CASE CASE INLIST("#"+THIS.cDestination+"#","#PRINTREPORT#", "#PRINTLIST#", "#PRINTFILE#") DIME THIS.aOptions[3,2] THIS.aOptions[1,1] = OUTPUT_PRINT_OPTIONS_WINDEFAULT_LOC + ; " ("+PROPER(SET("PRINT",2))+")" THIS.aOptions[2,1] = OUTPUT_PRINT_OPTIONS_VFPDEFAULT_LOC + ; " ("+THIS.cVFPPrinterName+")" THIS.aOptions[3,1] = OUTPUT_PRINT_OPTIONS_SETVFPDEFAULT_LOC THIS.aOptions[1,2] = "WINDEFAULT" THIS.aOptions[2,2] = "VFPDEFAULT" THIS.aOptions[3,2] = "SETVFPDEFAULT" CASE THIS.cDestination == "SCREEN" LOCAL liGraphical, liAscii, liBrowse, liList STORE 0 TO liGraphical, liAscii, liBrowse, liList IF (NOT THIS.lPreventSourceChanges) OR ; (NOT EMPTY(THIS.cAlias)) AND (NOT EMPTY(THIS.cReport)) DIME THIS.aOptions[4,2] THIS.aOptions[1,2] = "GRAPHICAL" liGraphical = 1 THIS.aOptions[2,2] = "ASCII" liAscii = 2 THIS.aOptions[3,2] = "BROWSE" liBrowse = 3 THIS.aOptions[4,2] = "LIST" liList = 4 ELSE DIME THIS.aOptions[2,2] IF EMPTY(THIS.cAlias) THIS.aOptions[1,2] = "GRAPHICAL" liGraphical = 1 THIS.aOptions[2,2] = "ASCII" liAscii = 2 ELSE THIS.aOptions[1,2] = "BROWSE" liBrowse = 1 THIS.aOptions[2,2] = "LIST" liList = 2 ENDIF ENDIF IF EMPTY(THIS.cReport) IF NOT THIS.lPreventSourceChanges THIS.aOptions[liGraphical,1] = "\"+OUTPUT_SCREEN_GRAPHICAL_LOC THIS.aOptions[liAscii,1] = "\"+OUTPUT_SCREEN_ASCII_LOC ENDIF ELSE THIS.aOptions[liGraphical,1] = OUTPUT_SCREEN_GRAPHICAL_LOC THIS.aOptions[liAscii,1] = OUTPUT_SCREEN_ASCII_LOC ENDIF IF EMPTY(THIS.cAlias) IF NOT THIS.lPreventSourceChanges THIS.aOptions[liBrowse,1] = "\"+ OUTPUT_SCREEN_BROWSE_LOC THIS.aOptions[liList,1] = "\"+OUTPUT_SCREEN_LIST_LOC ENDIF ELSE THIS.aOptions[liBrowse,1] = OUTPUT_SCREEN_BROWSE_LOC THIS.aOptions[liList,1] = OUTPUT_SCREEN_LIST_LOC ENDIF CASE THIS.cDestination == "TEXTFILE" * we don't use any items from the options array CASE THIS.cDestination == "HTMLFILE" DIME THIS.aOptions[3,2] IF EMPTY(THIS.cAlias) AND EMPTY(THIS.cReport) THIS.aOptions[1,1] = "\"+OUTPUT_HTML_FILEONLY_LOC THIS.aOptions[2,1] = "\"+OUTPUT_HTML_VIEWSOURCE_LOC THIS.aOptions[3,1] = "\"+OUTPUT_HTML_WEBVIEW_LOC ELSE THIS.aOptions[1,1] = OUTPUT_HTML_FILEONLY_LOC THIS.aOptions[2,1] = OUTPUT_HTML_VIEWSOURCE_LOC THIS.aOptions[3,1] = OUTPUT_HTML_WEBVIEW_LOC ENDIF THIS.aOptions[1,2] = "FILEONLY" THIS.aOptions[2,2] = "VIEWSOURCE" THIS.aOptions[3,2] = "WEBVIEW" CASE THIS.cDestination == "EXPORT" DIME THIS.aOptions[10,2] * THIS.aOptions[1,1] = OUTPUT_EXPORT_EXCEL97 * THIS.aOptions[1,2] = "XL8" THIS.aOptions[1,1] = OUTPUT_EXPORT_EXCEL5 THIS.aOptions[1,2] = "XL5" THIS.aOptions[2,1] = OUTPUT_EXPORT_EXCEL2 THIS.aOptions[2,2] = "XLS" THIS.aOptions[3,1] = OUTPUT_EXPORT_FOX2X THIS.aOptions[3,2] = "FOX2X" THIS.aOptions[4,1] = OUTPUT_EXPORT_FOXPLUS THIS.aOptions[4,2] = "FOXPLUS" THIS.aOptions[5,1] = OUTPUT_EXPORT_FIXEDLEN THIS.aOptions[5,2] = "SDF" THIS.aOptions[6,1] = OUTPUT_EXPORT_DELIMITED THIS.aOptions[6,2] = "DELIMITED" THIS.aOptions[7,1] = OUTPUT_EXPORT_LOTUS2 THIS.aOptions[7,2] = "WK1" THIS.aOptions[8,1] = OUTPUT_EXPORT_DIF THIS.aOptions[8,2] = "DIF" THIS.aOptions[9,1] = OUTPUT_EXPORT_SYMPHONY THIS.aOptions[9,2] = "WRK" THIS.aOptions[10,1] = OUTPUT_EXPORT_CSV THIS.aOptions[10,2] = "CSV" ENDCASE ENDPROC PROCEDURE setdestinations LOCAL liPrintReport, liPrintList, liScreen, liTextFile, ; liHTMLFile, liPrintFile, liExport, ; lcSourceReport, lcSourceAlias, lcSourceBoth STORE 0 TO liPrintReport, liPrintList, liScreen, liTextFile, ; liHTMLFile, liPrintFile, liExport IF (EMPTY(_GENHTML) OR ; (NOT (FILE(_GENHTML) OR FILE(FORCEEXT(_GENHTML,".FXP")))) ) _GENHTML = "" ENDIF IF THIS.lAddSourceNameToDropDown lcSourceReport = " ("+PROPER(JUSTFNAME(THIS.cReport))+")" lcSourceAlias = " ("+THIS.cAlias+")" lcSourceBoth = " ("+PROPER(JUSTFNAME(THIS.cReport))+","+THIS.cAlias+")" ELSE STORE "" TO lcSourceReport, lcSourceAlias, lcSourceBoth ENDIF DO CASE CASE (NOT THIS.lPreventSourceChanges) OR ; (NOT EMPTY(THIS.cAlias)) AND (NOT EMPTY(THIS.cReport)) IF EMPTY(_GENHTML) DIME THIS.aDestinations[6,2] ELSE DIME THIS.aDestinations[7,2] THIS.aDestinations[7,2] = "HTMLFILE" liHTMLFile = 7 ENDIF THIS.aDestinations[1,2] = "PRINTREPORT" liPrintReport = 1 THIS.aDestinations[2,2] = "PRINTLIST" liPrintList = 2 THIS.aDestinations[3,2] = "SCREEN" liScreen = 3 THIS.aDestinations[4,2] = "TEXTFILE" liTextFile = 4 THIS.aDestinations[5,2] = "PRINTFILE" liPrintFile = 5 THIS.aDestinations[6,2] = "EXPORT" liExport = 6 CASE (NOT EMPTY(THIS.cAlias)) IF EMPTY(_GENHTML) DIME THIS.aDestinations[3,2] ELSE DIME THIS.aDestinations[4,2] THIS.aDestinations[4,2] = "HTMLFILE" liHTMLFile = 4 ENDIF THIS.aDestinations[1,2] = "PRINTLIST" liPrintList = 1 THIS.aDestinations[2,2] = "SCREEN" liScreen = 2 THIS.aDestinations[3,2] = "EXPORT" liExport = 3 CASE (NOT EMPTY(THIS.cReport)) IF EMPTY(_GENHTML) DIME THIS.aDestinations[4,2] ELSE DIME THIS.aDestinations[5,2] THIS.aDestinations[5,2] = "HTMLFILE" liHTMLFile = 5 ENDIF THIS.aDestinations[1,2] = "PRINTREPORT" liPrintReport = 1 THIS.aDestinations[2,2] = "SCREEN" liScreen = 2 THIS.aDestinations[3,2] = "TEXTFILE" liTextFile = 3 THIS.aDestinations[4,2] = "PRINTFILE" liPrintFile = 4 OTHERWISE * preventing source changes and both are empty -- * don't bother, but have to show something in the dialog! liScreen = 1 IF NOT EMPTY(_GENHTML) liHTMLFile = 2 ENDIF ENDCASE IF EMPTY(THIS.cReport) IF liPrintReport > 0 THIS.aDestinations[liPrintReport,1] = "\"+OUTPUT_PRINT_REPORT_LOC THIS.aDestinations[liTextFile,1] = "\"+OUTPUT_TEXTFILE_LOC THIS.aDestinations[liPrintFile,1] = "\"+OUTPUT_PRINTFILE_LOC ENDIF ELSE THIS.aDestinations[liPrintReport,1] = OUTPUT_PRINT_REPORT_LOC + lcSourceReport THIS.aDestinations[liTextFile,1] = OUTPUT_TEXTFILE_LOC + lcSourceReport THIS.aDestinations[liPrintFile,1] = OUTPUT_PRINTFILE_LOC + lcSourceReport ENDIF IF EMPTY(THIS.cAlias) IF liPrintList > 0 THIS.aDestinations[liPrintList,1] = "\"+OUTPUT_PRINT_LIST_LOC THIS.aDestinations[liExport,1] = "\"+OUTPUT_EXPORT_LOC ENDIF ELSE THIS.aDestinations[liPrintList,1] = OUTPUT_PRINT_LIST_LOC + lcSourceAlias THIS.aDestinations[liExport,1] = OUTPUT_EXPORT_LOC + lcSourceAlias ENDIF DO CASE CASE EMPTY(THIS.cAlias) AND EMPTY(THIS.cReport) THIS.aDestinations[liScreen,1] = "\"+OUTPUT_SCREEN_LOC IF NOT EMPTY(_GENHTML) THIS.aDestinations[liHTMLFile,1] = "\"+OUTPUT_HTMLFILE_LOC ENDIF CASE EMPTY(THIS.cAlias) THIS.aDestinations[liScreen,1] = OUTPUT_SCREEN_LOC + lcSourceReport IF NOT EMPTY(_GENHTML) THIS.aDestinations[liHTMLFile,1] = OUTPUT_HTMLFILE_LOC + lcSourceReport ENDIF CASE EMPTY(THIS.cReport) THIS.aDestinations[liScreen,1] = OUTPUT_SCREEN_LOC + lcSourceAlias IF NOT EMPTY(_GENHTML) THIS.aDestinations[liHTMLFile,1] = OUTPUT_HTMLFILE_LOC + lcSourceAlias ENDIF OTHERWISE THIS.aDestinations[liScreen,1] = OUTPUT_SCREEN_LOC + lcSourceBoth IF NOT EMPTY(_GENHTML) THIS.aDestinations[liHTMLFile,1] = OUTPUT_HTMLFILE_LOC + lcSourceBoth ENDIF ENDCASE ENDPROC PROCEDURE calias_assign LPARAMETERS tcNewVal LOCAL lcNewVal, llSame IF VARTYPE(tcNewVal) # "C" OR EMPTY(tcNewVal) OR NOT USED(tcNewVal) lcNewVal = "" ELSE lcNewVal = ALLTR(PROPER(tcNewVal)) ENDIF llSame = (THIS.cAlias == lcNewVal) THIS.cAlias = lcNewVal IF NOT llSame THIS.SetDestinations() ENDIF ENDPROC PROCEDURE creport_assign LPARAMETERS tcNewVal LOCAL lcNewVal, llSame IF VARTYPE(tcNewVal) # "C" OR EMPTY(tcNewVal) lcNewVal = "" ELSE lcNewVal = ALLTR(tcNewVal) IF AT(".",lcNewVal) = 0 lcNewVal = lcNewVal + ".FRX" ENDIF IF NOT FILE(lcNewVal) lcNewVal = FULLPATH(lcNewVal) IF NOT FILE(lcNewVal) IF INLIST(_VFP.Startmode,0,4) ?? CHR(7) WAIT WINDOW NOWAIT LEFTC(OUTPUT_REPORT_NOT_FOUND_LOC,254) ENDIF lcNewVal = "" ENDIF ENDIF ENDIF llSame = (THIS.cReport == lcNewVal) THIS.cReport = lcNewVal IF NOT llSame THIS.SetDestinations() ENDIF ENDPROC PROCEDURE output LOCAL liSelect IF NOT EMPTY(THIS.cAlias) liSelect = SELECT() SELECT (THIS.cAlias) ENDIF DO CASE CASE INLIST("#"+THIS.cDestination+"#","#PRINTREPORT#","#PRINTFILE#","#TEXTFILE#") THIS.PrintReport() CASE THIS.cDestination = "HTMLFILE" THIS.GenHTML() CASE THIS.cDestination = "PRINTLIST" THIS.PrintList() CASE THIS.cDestination = "SCREEN" THIS.OutputToScreen() CASE THIS.cDestination = "EXPORT" THIS.CopyTable() ENDCASE IF NOT EMPTY(liSelect) SELECT (liSelect) ENDIF ENDPROC PROCEDURE setoutputprinter DO CASE CASE THIS.cOption = "WINDEFAULT" SET PRINTER TO DEFAULT * could also be: SET PRINTER TO NAME (SET(PRINTER,2)) CASE THIS.cOption = "VFPDEFAULT" SET PRINTER TO NAME (THIS.cVFPPrinterName) OTHERWISE THIS.SetVFPPrinter() ENDCASE ENDPROC PROCEDURE printlist LOCAL lcClauses THIS.SetOutputPrinter() IF NOT EMPTY(THIS.cFieldList) lcClauses = STRTRAN(THIS.cFieldList,CHR(13),",") lcClauses = " FIELDS "+lcClauses ELSE lcClauses = "" ENDIF IF NOT EMPTY(THIS.cScope) lcClauses = lcClauses + " " + THIS.cScope ENDIF LIST OFF &lcClauses TO PRINT NOCONSOLE ENDPROC PROCEDURE printreport ASSERT (NOT EMPTY(THIS.cReport)) AND FILE(THIS.cReport) * note: the HTML portion of this method is not currently * in use, we're going through _GENHTML on HTML output * for either alias or report. However, REPORT FORM ... TO HTML * might be added to the language at some point LOCAL lcClauses, lcDestination,lcFile IF NOT INLIST(THIS.cDestination,"TEXTFILE","HTMLFILE") THIS.SetOutputPrinter() ENDIF IF NOT EMPTY(THIS.cScope) lcClauses = THIS.cScope ELSE lcClauses = "" ENDIF IF THIS.cDestination # "PRINTREPORT" lcFile = ALLTRIM(THIS.cTextFile) DO CASE CASE EMPTY(lcFile) lcFile = "R"+SYS(2015) CASE RIGHT(lcFile,1) = "\" lcFile = lcFile+ "R"+SYS(2015) OTHERWISE * we're okay ENDCASE IF AT(".",lcFile) = 0 DO CASE CASE THIS.cDestination = "PRINTFILE" lcFile = lcFile + ".PRN" CASE THIS.cDestination = "HTMLFILE" lcFile = lcFile + ".HTM" OTHERWISE lcFile = lcFile + ".TXT" ENDCASE ENDIF lcFile = FULLPATH(lcFile) ENDIF DO CASE CASE THIS.cDestination = "TEXTFILE" lcDestination = " TO FILE '"+ lcFile +"' ASCII " CASE THIS.cDestination = "PRINTFILE" lcDestination = " TO FILE "+ lcFile +" " CASE THIS.cDestination = "HTMLFILE" lcDestination = " TO FILE '"+ lcFile +"' HTML " OTHERWISE lcDestination = " TO PRINT " ENDCASE THIS.cTextFile = lcFile IF ".LBX" $ UPPER(THIS.cReport) * not that I think it makes any difference!! LABEL FORM (THIS.cReport) &lcClauses &lcDestination NOCONSOLE ELSE REPORT FORM (THIS.cReport) &lcClauses &lcDestination NOCONSOLE ENDIF ENDPROC PROCEDURE copytable LOCAL lcClauses, lcFile IF .F. && NOT EMPTY(THIS.cFieldList) * the fields list cannot be trusted for COPY TO, * because expressions in the fields list are * not likely to work. * We could make it the developer's responsibility to * set the FIELDS list properly before * calling this option/"EXPORT" as destination, * but it is just as easy for the developer * to use an alias with the fields already formatted * and chosen, either with a SELECT or a SET FIELDS * so it's better not to leave this in place. lcClauses = STRTRAN(THIS.cFieldList,CHR(13),",") lcClauses = " FIELDS "+lcClauses ELSE lcClauses = "" ENDIF IF NOT EMPTY(THIS.cScope) lcClauses = lcClauses + " " + THIS.cScope ENDIF lcClauses = lcClauses + " TYPE "+THIS.cOption lcFile = ALLTRIM(THIS.cTextFile) DO CASE CASE EMPTY(lcFile) lcFile = "R"+SYS(2015) CASE RIGHT(lcFile,1) = "\" lcFile = lcFile + "R"+SYS(2015) OTHERWISE * we're okay ENDCASE IF AT(".",lcFile) = 0 *&* change in VFP 7 -- extension for delimited files *&* explicitly set DO CASE CASE THIS.cOption = "DELIMITED" lcFile = lcFile + ".ASC" CASE LEN(THIS.cOption) > 3 lcFile = lcFile + ".DBF" OTHERWISE lcFile = lcFile + "."+THIS.cOption ENDCASE ENDIF lcFile = FULLPATH(lcFile) THIS.cTextFile = lcFile COPY TO (lcFile) &lcClauses ENDPROC PROCEDURE lpreventsourcechanges_assign LPARAMETERS m.vNewVal THIS.lpreventsourcechanges = m.vNewVal THIS.SetDestinations() ENDPROC PROCEDURE cdisplayfontname_assign LPARAMETERS tcNewVal IF VARTYPE(tcNewVal) # "C" OR EMPTY(tcNewVal) RETURN ENDIF LOCAL laTemp[1], lcVal, lcFont lcVal = ALLTR(tcNewVal) IF NOT EMPTY(AFONT(laTemp)) FOR EACH lcFont IN laTemp IF UPPER(lcVal) == UPPER(lcFont) THIS.cDisplayFontName = lcVal EXIT ENDIF ENDFOR ENDIF ENDPROC PROCEDURE genhtml ASSERT (NOT EMPTY(THIS.cReport+THIS.cAlias)) ASSERT IIF(NOT EMPTY(THIS.cReport), FILE(THIS.cReport), .T.) ASSERT IIF(NOT EMPTY(THIS.cAlias), USED(THIS.cAlias), .T.) LOCAL lcFile, lvClass,liShow, lvDummy, lcScope, lvStyle, lcSource IF (EMPTY(_GENHTML) OR ; (NOT (FILE(_GENHTML) OR FILE(_GENHTML+".FXP"))) ) _GENHTML = "" RETURN ENDIF IF VARTYPE(THIS.cHTMLClass) = "C" AND (NOT EMPTY(THIS.cHTMLClass)) lvClass = THIS.cHTMLClass ENDIF IF VARTYPE(THIS.cHTMLStyleID) = "C" AND (NOT EMPTY(THIS.cHTMLStyleID)) lvStyle = THIS.cHTMLStyleID ENDIF IF VARTYPE(THIS.cScope) = "C" AND (NOT EMPTY(THIS.cScope)) lcScope = THIS.cScope ELSE lcScope = "ALL" ENDIF DO CASE CASE THIS.cOption = "VIEWSOURCE" liShow = 1 CASE THIS.cOption = "WEBVIEW" liShow = 2 OTHERWISE liShow = 0 ENDCASE lcFile = ALLTRIM(THIS.cTextFile) DO CASE CASE EMPTY(lcFile) lcFile = "R"+SYS(2015) CASE RIGHT(lcFile,1) = "\" lcFile = lcFile + "R"+SYS(2015) OTHERWISE * we're okay ENDCASE IF AT(".",lcFile) = 0 lcFile = lcFile + ".HTM" lcFile = FULLPATH(lcFile) ENDIF THIS.cTextFile = lcFile IF EMPTY(THIS.cReport) DO CASE CASE EMPTY(THIS.cFieldList) lcSource = THIS.cAlias CASE CHR(13) $ THIS.cFieldList lcSource = THIS.cAlias+CHR(13)+THIS.cFieldList OTHERWISE lcSource = THIS.cAlias+","+THIS.cFieldList ENDCASE DO (_GENHTML) WITH lcFile, lcSource, liShow, lvDummy, lvStyle, lcScope, lvClass ELSE DO (_GENHTML) WITH lcFile, THIS.cReport, liShow, lvDummy, lvStyle, lcScope, lvClass ENDIF * GENHTML Parameter list: * tcOutFile: Output file name (defaults to .HTM extension). * tvSource: Source file name, alias, or object. * tvSource can contain alias delimited by either CR's or commas * from a delimited list of fields to be generated (field list * using same delimiter as separator from alias) * tnShow: 0/Empty = Generate output file only. * 1 = Create output file and view generated source file. * 2 = Create output file and show generated file in internet browser. * 3 = Create _oHTML object. * 4 = Create _oHTML object only, no prompt for output file, no prompt for * source file. * tvIELink: Create link to InternetExplorer.Application using automation. * tcHTMLStyleID Style from style table * tcHTMLScope scope clause * tcHTMLClass: delimited string holding Class, Classlib, IN EXE/APP for instantiated for HTML object. ENDPROC PROCEDURE cscope_assign LPARAMETERS tvNewVal IF VARTYPE(tvNewVal) = "C" THIS.cScope = tvNewVal ENDIF ENDPROC PROCEDURE ctextfile_assign LPARAMETERS tvNewVal IF VARTYPE(tvNewVal) = "C" LOCAL liPos, lcVal liPos = RAT("\",tvNewVal) IF liPos > 0 IF NOT DIRECTORY(LEFT(tvNewVal,liPos)) lcVal = SUBSTR(tvNewVal,liPos+1) ELSE lcVal = tvNewVal ENDIF ELSE liPos = AT(":",tvNewVal) IF liPos > 0 AND ; (liPos = LEN(tvNewVal) OR ; SUBSTR(tvNewVal,liPos+1,1) # "\" ) lcVal = STUFF(tvNewVal,liPos+1,0,"\") ELSE lcVal = tvNewVal ENDIF liPos = RAT("\",lcVal) IF NOT DIRECTORY(LEFT(lcVal,liPos)) lcVal = SUBSTR(lcVal, liPos+1) ENDIF ENDIF THIS.cTextfile = lcVal ENDIF ENDPROC PROCEDURE Init IF NOT DODEFAULT() RETURN .F. ENDIF THIS.SetDestinations() IF EMPTY(THIS.cAlias) THIS.cAlias = ALIAS() ENDIF ENDPROC XWidth = 33 Height = 27 BackStyle = 0 BorderWidth = 0 cvfpprintername = ("") coption = ("WINDEFAULT") creport = ("") calias = ("") cfieldlist = ("") cdestination = ("PRINTREPORT") ctextfile = ("") cdisplayfontname = ("Courier New") laddsourcenametodropdown = .T. chtmlclass = chtmlstyleid = ("") cscope = ("") Name = "_output"